package com.mate.cloud.enums;

/**
 * 订单操作枚举类，定义所有合法的订单动作及对应的状态
 */
public enum OrderActionEnum {
    // 支付操作，对应状态为"已支付"
    PAY("PAY", "PAID"),
    // 取消操作，对应状态为"已取消"
    CANCEL("CANCEL", "CANCELLED");

    // 动作标识（与消息中的action对应）
    private final String action;
    // 对应的订单状态
    private final String targetStatus;

    OrderActionEnum(String action, String targetStatus) {
        this.action = action;
        this.targetStatus = targetStatus;
    }

    // 根据动作标识获取对应的枚举实例
    public static OrderActionEnum getByAction(String action) {
        for (OrderActionEnum actionEnum : values()) {
            if (actionEnum.action.equals(action)) {
                return actionEnum;
            }
        }
        // 可以根据业务需求抛异常或返回默认值
        throw new IllegalArgumentException("不支持的订单动作: " + action);
    }

    // getter方法
    public String getAction() {
        return action;
    }

    public String getTargetStatus() {
        return targetStatus;
    }
}